package com.cetcs.kmga.dataManager.dao.mybatis;

import com.cetcs.kmga.common.Data;
import com.cetcs.kmga.dataManager.entity.device.SecuRule;
import com.cetcs.kmga.dataManager.entity.dataManager.vo.SecuRuleAlertCondition;
import com.cetcs.kmga.dataManager.entity.device.vo.KeyAndValueVo;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 安全规则信息dao
 * Created by yyangs on 2017/8/23 0021.
 */
@Repository
public interface SecuRuleMapper {

    //通过条件获取所有的安全规则信息
    List<SecuRule> getSecuRuleInfosByCondition(Data dataMap) throws Exception;

    //通过条件获取所有的安全规则信息 分页
    List<SecuRule> getSecuRuleInfosByCondition(Data dataMap,PageBounds pageBounds) throws Exception;


    //==================== zhangchunlin start ======================//
    //查询用户表
    List<Map> findSysUsers(String keyword);

    //添加告警规则
    int addSecuRule(SecuRule rule);
    //修改告警规则
    int updateSecuRule(Data data);
    //修改告警规则
    int modifySecuRule(SecuRule rule);
    //添加告警规则的告警条件
    int addSecuRuleCondition(List<SecuRuleAlertCondition> list);

    //查询告警规则
    SecuRule findSecuRuleById(String id);
    //查询告警规则的告警条件
    List<SecuRuleAlertCondition> findSecuRuleCondition(String ruleId);
    //保存告警步骤信息
    int addSecuRuleStepInfo(@Param("ruleId") int ruleId, @Param("info") String stepInfo);
    String findSecuRuleStepByRuleId(String ruleId);

    //删除告警规则
    int removeSecuRuleById(String id);

    /**
     * 删除告警规则的相关附属信息,如告警条件,设置步骤等
     * @param tableName 附属表的表名
     * @param ruleId 告警规则ID
     * @return
     */
    int removeSecuRuleConditionByRuleId(@Param("tbName") String tableName,@Param("ruleId") String ruleId);
    //根据用户邮箱查询用户ID
    String findUserIdByEmail(String email);
    //==================== zhangchunlin end ======================//

}
